//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//	char str[10000];
//	gets(str);
//	int len = strlen(str);
//	char* p = &str;
//	for (int i = len-1; i >=0; i--)
//	{
//		printf("%c", *(p+i));
//
//	}
//
//
//	return 0;
//}

//
//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//	char str[10000];
//	int n = 0;
//	gets(str);
//	int len = strlen(str);
//	scanf("%d", &n);
//	char* p = str;
//	left_move(str, n);
//	
//	while (len--)
//	{
//		printf("%c", *p);
//		p++;
//	}
//	return 0;
//}
//
//
//
left_move(char* str, int n)
{


	while (n != 0)
	{
		char*cur  = str;
		char tmp = *cur;
		while (*(cur + 1) != '\0')
		{
			*cur = *(cur + 1);
			cur++;
		}

		*cur = tmp;
		n--;
	}
	return;
}


//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6 };
//	int* p = arr;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	while (sz--)
//	{
//		printf("%d ", *p);
//		p++;
//	}
//
//	return 0;
//}

//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//
//int main()
//{
//	int arr[] = { 6,5,4,3,2,1 };
//	int* p = arr;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//
//	bubble(p, sz);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//
//	return 0;
//}
//
//bubble(int* p, int sz)
//{
//	int tmp = 0;
//	for (int i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; j < sz - i - 1; j++)
//		{
//			if (*(p + j) > *(p + j + 1))
//			{
//				tmp = *(p + j);
//				*(p + j) = *(p + j + 1);
//				*(p + j + 1) = tmp;
//
//
//			}
//
//		}
//	}
//	return;
//}


//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//
//int main()
//{
//	int arr[] = {8,1,7,7,9,1,9,2,2,4,6,12,49,36,6,6,77,53,66,22,44,88,66,44,12,46,34,59,78,64,48,12,101,1201,309,608,303,406};
//	int* p = arr;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//
//	bubble_and_odd(p, sz);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//
//	return 0;
//}
//
//bubble_and_odd(int* p, int sz)
//{
//	int tmp = 0;
//	for (int i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; j < sz - i - 1; j++)
//		{
//			if (*(p + j) > *(p + j + 1))
//			{
//				tmp = *(p + j);
//				*(p + j) = *(p + j + 1);
//				*(p + j + 1) = tmp;
//			}
//
//		}
//	}
//
//	for (int i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; j < sz - i - 1; j++)
//		{
//			if (*(p+j)%2==0 && *(p+j+1)%2==1)
//			{
//				tmp = *(p + j);
//				*(p + j) = *(p + j + 1);
//				*(p + j + 1) = tmp;
//			}
//
//		}
//	}
//
//	return 0;
//}


//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//
//int main()
//{
//	int n = 0, m = 0;
//	scanf("%d%d", &n, &m);
//	int arr[2000000];
//	int* p = arr;
//	for (int j = 0; j < m; j++)
//	{
//		scanf("%d", p + j);
//	}
//
//	bubble(p, m);
//	for (int i = 0; i < m; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//
//	return 0;
//}
//
//bubble(int* p, int sz)
//{
//	int tmp = 0;
//	for (int i = 0; i < sz - 1; i++)
//	{
//		int flag = 1;
//		for (int j = 0; j < sz - i - 1; j++)
//		{
//			if (*(p + j) > *(p + j + 1))
//			{
//				flag = 0;
//				tmp = *(p + j);
//				*(p + j) = *(p + j + 1);
//				*(p + j + 1) = tmp;
//			}
//
//		}
//		if (flag == 1)
//			break;
//	}
//	return;
//}



#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int n = 0, m = 0;
	scanf("%d%d", &n, &m);
	int arr[2000000];
	int* p = arr;
	for (int j = 0; j < m; j++)
	{
		scanf("%d", p + j);
	}

	bubble(p, m);
	for (int i = 0; i < m; i++)
	{
		printf("%d ", *(p + i));
	}

	return 0;
}

bubble(int* p, int sz)
{
	int tmp = 0;
	for (int i = 0; i < sz - 1; i++)
	{
		int flag = 1;
		for (int j = 0; j < sz - i - 1; j++)
		{
			if (*(p + j) > *(p + j + 1))
			{
				flag = 0;
				tmp = *(p + j);
				*(p + j) = *(p + j + 1);
				*(p + j + 1) = tmp;
			}

		}
		if (flag == 1)
			break;
	}
	return;
}

